Enrolment and Baseline Summaries

Exploratory summaries of enrolments and baseline data.

Author

James Totterdell

Published

July 14, 2022

Load packages
library(tidyverse)
library(patchwork)
library(DT)
library(plotly)
library(knitr)
library(lubridate)
library(kableExtra)

theme_set(theme_classic(base_size = 10, base_family = "Palatino") +
  theme(panel.grid = element_blank(),
        strip.background = element_blank()))
Load data
devtools::load_all()
all_data <- read_all_no_daily()
all_daily_data <- read_all_daily()

Enrolment

Study enrolment
md <- get_interim_dates()
id <- get_intervention_dates()
p1 <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0") %>%
  dplyr::count(RandDate) %>%
  complete(RandDate = 
             seq.Date(min(RandDate, na.rm = TRUE), 
                      as.Date("2022-04-09"), 
                      by = "1 day"),
           fill = list(n = 0)) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  rename(`Randomisation date` = RandDate) %>%
  ggplot(., aes(`Randomisation date`, `Cumulative enrolments`)) +
  geom_step() +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  labs(x = "", subtitle = "Cumulative enrolments", y = "")

p2 <- id %>%
  mutate(
    Intervention = fct_inorder(val_labels(Intervention))
  ) %>%
  ggplot(.) +
  facet_grid(Domain ~ ., drop = TRUE, scales = "free_y", space = "free_y") +
  geom_point(data = . %>% filter(Domain != "Antiviral"),
             aes(x = Intervention, y = endate), shape = 4) +
  geom_segment(
    aes(x = Intervention, xend = Intervention, 
        y = stdate, yend = endate))  +
  geom_hline(data = md,
             aes(yintercept = as.numeric(meet_date)),
             linetype = 2) +
  coord_flip() +
  labs(x = "", y = "Calendar date", subtitle = "Available interventions")

p <- p1 / p2
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "enrolment-overall.pdf"), p, height = 4.5, width = 6)
p

Study enrolment
p1 <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0") %>%
  dplyr::count(Country = PT_CountryName, RandDate) %>%
  complete(
    Country, 
    RandDate = seq.Date(min(RandDate, na.rm = T), as.Date("2022-04-09"), by = "1 day"),
    fill = list(n = 0)) %>%
  group_by(Country) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  ungroup() %>%
  mutate(Country = factor(Country, levels = c("India", "Australia", "Nepal", "New Zealand"))) %>%
  rename(`Randomisation date` = RandDate) %>%
  ggplot(., aes(`Randomisation date`, `Cumulative enrolments`, fill = Country)) +
  # facet_wrap( ~ Country, ncol = 1, scales = "free_y") +
  geom_area(position = "stack") +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  scale_fill_viridis_d("", begin = 0.2, end = 0.8, option = "B") +
  labs(x = "", subtitle = "Cumulative enrolments", y = "") +
  theme(legend.position = "top",
        legend.key.size = unit(0.7, "lines"),
        legend.text = element_text(size = rel(0.8)))

p3 <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0") %>%
  dplyr::count(Country = PT_CountryName, RandDate) %>%
  complete(
    Country, 
    RandDate = seq.Date(min(RandDate, na.rm = T), as.Date("2022-04-09"), by = "1 day"),
    fill = list(n = 0)) %>%
  group_by(Country) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  ungroup() %>%
  mutate(Country = factor(Country, levels = c("India", "Australia", "Nepal", "New Zealand"))) %>%
  rename(`Randomisation date` = RandDate) %>%
  ggplot(., aes(`Randomisation date`, `Cumulative enrolments`, group = Country)) +
  # facet_wrap( ~ Country, ncol = 1, scales = "free_y") +
  geom_step(position = "stack") +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  scale_fill_viridis_d("", begin = 0.2, end = 0.8, option = "B") +
  labs(x = "", subtitle = "Cumulative enrolments", y = "") +
  theme(legend.position = "top",
        legend.key.size = unit(0.7, "lines"),
        legend.text = element_text(size = rel(0.8)))

p <- p1 / p2
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "enrolment-overall-country.pdf"), p, height = 5, width = 6)
p

Study enrolment by country
p1 <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0") %>%
  dplyr::count(Country = PT_CountryName, RandDate) %>%
  complete(
    Country, 
    RandDate = seq.Date(min(RandDate, na.rm = T), as.Date("2022-04-09"), by = "1 day"),
    fill = list(n = 0)) %>%
  group_by(Country) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  rename(`Randomisation date` = RandDate) %>%
  ggplot(., aes(`Randomisation date`, `Cumulative enrolments`)) +
  facet_wrap( ~ Country, ncol = 1, scales = "free_y") +
  geom_step() +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  labs(x = "", subtitle = "Cumulative enrolments", y = "")
p <- (p1 / p2) + plot_layout(heights = c(5, 2))
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "enrolment-country.pdf"), p, height = 6, width = 6)
p

Study enrolment by site
p1 <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0") %>%
  dplyr::count(Country = PT_CountryName, Site = PT_LocationName, RandDate) %>%
  complete(
    nesting(Country, Site),
    RandDate = seq.Date(min(RandDate), as.Date("2022-04-09"), by = "1 day"),
    fill = list(n = 0)) %>%
  group_by(Country, Site) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  rename(`Calendar date` = RandDate) %>%
  ggplot(., aes(`Calendar date`, `Cumulative enrolments`)) +
  facet_wrap( ~ paste(Country, Site, sep = ": "), 
              ncol = 5, scales = "free_y") +
  geom_step() +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  scale_y_continuous(breaks = function(x) 
    unique(floor(pretty(seq(0, (max(x) + 1) * 1.1)))))
ggplotly(p1, height = 1000)
Code
p_india <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0", PT_CountryName == "India") %>%
  dplyr::count(Country = PT_CountryName, Site = PT_LocationName, RandDate) %>%
  complete(
    nesting(Country, Site),
    RandDate = seq.Date(min(RandDate), as.Date("2022-04-09"), by = "1 day"),
    fill = list(n = 0))  %>%
  group_by(Country, Site) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  rename(`Calendar date` = RandDate) %>%
  ggplot(., aes(`Calendar date`, `Cumulative enrolments`)) +
  facet_wrap( ~ Site, 
              ncol = 3, scales = "free_y") +
  geom_step() +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  scale_y_continuous(breaks = function(x) 
    unique(floor(pretty(seq(0, (max(x) + 1) * 1.1))))) +
  scale_x_date(date_breaks  = "4 months", date_labels = "%b %Y") +
  theme(strip.text = element_text(size = rel(0.7)))
Code
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "enrolment-india-sites.pdf"), p_india, height = 5, width = 7)
Code
p_aus <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0", PT_CountryName == "Australia") %>%
  dplyr::count(Country = PT_CountryName, Site = PT_LocationName, RandDate) %>%
  complete(
    nesting(Country, Site),
    RandDate = seq.Date(min(RandDate), as.Date("2022-04-09"), by = "1 day"),
    fill = list(n = 0))  %>%
  group_by(Country, Site) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  rename(`Calendar date` = RandDate) %>%
  ggplot(., aes(`Calendar date`, `Cumulative enrolments`)) +
  facet_wrap( ~ Site, 
              ncol = 3, scales = "free_y") +
  geom_step() +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  scale_y_continuous(breaks = function(x) 
    unique(floor(pretty(seq(0, (max(x) + 1) * 1.1))))) +
  scale_x_date(date_breaks  = "4 months", date_labels = "%b %Y") +
  theme(strip.text = element_text(size = rel(0.7)))
Code
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "enrolment-australia-sites.pdf"), p_aus, height = 5, width = 7)
Code
p_npnz <- all_data %>%
  filter(ENR_rec == 1, CAssignment != "C0", PT_CountryName %in% c("Nepal", "New Zealand")) %>%
  dplyr::count(Country = PT_CountryName, Site = PT_LocationName, RandDate) %>%
  complete(
    nesting(Country, Site),
    RandDate = seq.Date(as.Date("2021-02-08"), as.Date("2022-04-09"), by = "1 day"),
    fill = list(n = 0))  %>%
  group_by(Country, Site) %>%
  mutate(`Cumulative enrolments` = cumsum(n)) %>%
  rename(`Calendar date` = RandDate) %>%
  ggplot(., aes(`Calendar date`, `Cumulative enrolments`)) +
  facet_wrap( ~ paste(Country, Site,  sep = ": "),
              ncol = 3, scales = "free_y") +
  geom_step() +
  geom_vline(data = md,
             aes(xintercept = as.numeric(meet_date)),
             linetype = 2) +
  scale_y_continuous(breaks = function(x) 
    unique(floor(pretty(seq(0, (max(x) + 1) * 1.1))))) +
  scale_x_date(date_breaks  = "4 months", date_labels = "%b %Y") +
  theme(strip.text = element_text(size = rel(0.7)))
Code
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "enrolment-nepalnz-sites.pdf"), p_npnz, height = 3, width = 7)

Intervention Assignments

Code
all_data %>%
  filter_fas_itt() %>%
  dplyr::count(FAS_ITT, ACS_ITT, CAssignment) %>%
  kable() %>%
  kable_styling("striped", font_size = 14)
FAS_ITT ACS_ITT CAssignment n
1 0 C0 25
1 1 C1 610
1 1 C2 613
1 1 C3 283
1 1 C4 50
Table 1: Counts of intervention assignments to anticoagulation
Intervention allocations overtime
p1 <- all_data %>%
  filter(ENR_rec == 1) %>%
  dplyr::count(Intervention = CAssignment, RandDate) %>%
  complete(Intervention,
           RandDate = seq.Date(min(RandDate, na.rm = T),
                              as.Date("2022-04-09"),
                               by = "1 day"),
           fill = list(n = 0)) %>%
  group_by(Intervention) %>%
  mutate(cn = cumsum(n)) %>%
  ungroup() %>%
  ggplot(., aes(RandDate, cn)) +
  geom_step(aes(colour = Intervention)) +
  scale_color_viridis_d(option = "D") +
  labs(x = "", y = "Cumulative allocation")
p1 / p2

Country

Allocations to interventions by country of enrolment.

Allocations by site
all_data %>%
  filter(ENR_rec == 1) %>%
  dplyr::count(Country = PT_CountryName, Intervention = factor(CAssignment, labels = intervention_labels2()$CAssignment)) %>%
  group_by(Country) %>%
  mutate(p = n / sum(n)) %>%
  mutate(lab = sprintf("%i (%.2f)", n, p)) %>%
  select(-n, -p) %>%
  ungroup() %>%
  spread(Intervention, lab, fill = "0 (0.00)") %>%
  kable(align = "lrrrrr") %>%
  kable_styling(bootstrap_options = "striped", font_size = 12)
Country Not randomised to anticoagulation Low-dose Intermediate-dose Low-dose with aspirin Therapeutic-dose
Australia 23 (0.15) 51 (0.34) 60 (0.39) 7 (0.05) 11 (0.07)
India 0 (0.00) 499 (0.38) 520 (0.40) 277 (0.21) 4 (0.00)
Nepal 0 (0.00) 57 (0.47) 32 (0.27) 0 (0.00) 31 (0.26)
New Zealand 2 (0.07) 12 (0.44) 8 (0.30) 1 (0.04) 4 (0.15)
Table 2: Allocation to anti-coagulation interventions by country
Allocations by country
p <- all_data %>%
  filter(ENR_rec == 1) %>%
  dplyr::count(Country = Country,
        Intervention = factor(CAssignment, labels = c("Not randomised", intervention_labels_short()$CAssignment[-1]))) %>%
  group_by(Country) %>%
  mutate(p = n / sum(n)) %>%
  ggplot(., aes(Intervention, n)) +
  facet_wrap( ~ Country, scales = "free_y", ncol = 4) +
  geom_col() +
  scale_y_continuous("Frequency",
    breaks = function(x) 
      unique(floor(pretty(seq(0, (max(x) + 1) * 1.1))))) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25))
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "allocations-country.pdf"), p, height = 2.5, width = 7)
p

Site

Allocations to interventions by site of enrolment.

Allocations by site
p <- all_data %>%
  filter(ENR_rec == 1) %>%
  dplyr::count(Country = Country, 
        Site = Location,
        Intervention = factor(CAssignment, labels = c("Not randomised", intervention_labels_short()$CAssignment[-1]))) %>%
  group_by(Site = paste(Country, Site, sep = ": ")) %>%
  mutate(p = n / sum(n)) %>%
  ggplot(., aes(Intervention, n)) +
  facet_wrap( ~ Site, scales = "free_y") +
  geom_col() +
  scale_y_continuous("Frequency",
    breaks = function(x) 
      unique(floor(pretty(seq(0, (max(x) + 1) * 1.1))))) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25))
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "allocations-sites.pdf"), p, height = 6, width = 7)
p

Calender Time

Allocations by epoch
p <- all_data %>%
  filter(ENR_rec == 1) %>%
  dplyr::count(yr = year(RandDate), mth = month(RandDate),
        Intervention = factor(CAssignment, labels = c("Not randomised", intervention_labels_short()$CAssignment[-1]))) %>%
  group_by(yr, mth) %>%
  mutate(p = n / sum(n)) %>%
  ggplot(., aes(mth, p, fill = Intervention)) +
  facet_grid( ~ yr, drop = T, scales = "free_x", space = "free") +
  geom_col() +
  scale_y_continuous("Distribution of\ninterventions") +
  scale_fill_viridis_d(option = "B")  +
    labs(
      x = "Calendar date (month of year)") +
  scale_x_continuous(breaks = 1:12) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25))
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "allocations-calendar.pdf"), p, height = 2.5, width = 7)
p

Baseline Factors

The following provides an overview of the baseline covariates collected for individuals.

Demographics

Baseline demographics are summarised by intervention in the following table.

Demographics table
sdat <- all_data %>%
    filter_acs_itt() %>%
  mutate(CAssignment = factor(CAssignment, labels = intervention_labels()$CAssignment[-1]))
generate_baseline_demographics_table(sdat, format = "html")
Anticoagulation
Variable Low
dose

(n = 610)
Intermediate
dose

(n = 613)
Low dose
with aspirin

(n = 283)
Therapeutic
dose

(n = 50)
Overall

(n = 1556)
Age (years), Median (IQR) 48 (37, 60) 48 (37, 61) 50 (38, 62) 58 (46, 69) 49 (37, 61)
Country
India, n (\%) 493 (81) 516 (84) 275 (97) 4 (8) 1288 (83)
Australia, n (\%) 49 (8) 59 (10) 7 (2) 11 (22) 126 (8)
Nepal, n (\%) 56 (9) 31 (5) 0 (0) 31 (62) 118 (8)
New Zealand, n (\%) 12 (2) 7 (1) 1 (0) 4 (8) 24 (2)
Sex
Male, n (\%) 354 (58) 387 (63) 157 (55) 25 (50) 923 (59)
Female, n (\%) 256 (42) 226 (37) 126 (45) 25 (50) 633 (41)
Weight (kg)
Median, (IQR) 68 (62, 76) 70 (62, 77) 68 (62, 76) 66 (57, 80) 69 (62, 76)
Missing, n (\%) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
Vaccinated1
Yes, n (\%) 191 (31) 220 (36) 42 (15) 27 (54) 480 (31)
Missing, n (\%) 32 (5) 22 (4) 29 (10) 0 (0) 83 (5)
Ethnicity
Indian, n (\%) 494 (81) 518 (85) 275 (97) 4 (8) 1291 (83)
European, n (\%) 21 (3) 18 (3) 4 (1) 4 (8) 47 (3)
Asian, n (\%) 20 (3) 12 (2) 1 (0) 10 (20) 43 (3)
Pacific Islander, n (\%) 13 (2) 12 (2) 2 (1) 3 (6) 30 (2)
Middle Eastern, n (\%) 11 (2) 11 (2) 0 (0) 0 (0) 22 (1)
Maori, n (\%) 3 (0) 4 (1) 0 (0) 3 (6) 10 (1)
African, n (\%) 1 (0) 0 (0) 1 (0) 0 (0) 2 (0)
Aboriginal, n (\%) 0 (0) 1 (0) 0 (0) 1 (2) 2 (0)
Latin American, n (\%) 0 (0) 1 (0) 0 (0) 0 (0) 1 (0)
Other, n (\%) 45 (7) 28 (5) 0 (0) 23 (46) 96 (6)
Unknown, n (\%) 8 (1) 9 (1) 0 (0) 3 (6) 20 (1)
Smoking
Current, n (\%) 17 (3) 21 (3) 3 (1) 5 (10) 46 (3)
Former, n (\%) 74 (12) 53 (9) 15 (5) 14 (28) 156 (10)
Never, n (\%) 519 (85) 539 (88) 265 (94) 31 (62) 1354 (87)
Missing, n (\%) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
1 Site LUD did not have ethics approval for collection of vaccination status.
Table 3: Baseline demographics for participants randomised into the anticoagulation domain.
Save table to outputs
save_tex_table(
  generate_baseline_demographics_table(sdat, format = "latex"),
  "baseline/demographics"
)

Co-morbidities

Baseline co-morbidities are summarised by anti-coagulation intervention in the following table.

Co-morbidities table
sdat <- all_data %>%
    filter_acs_itt() %>%
  mutate(CAssignment = factor(CAssignment, labels = intervention_labels()$CAssignment[-1]))
generate_baseline_comorbidities_table(sdat, format = "html")
Anticoagulation
Comorbidity Low
dose
(n = 610)
Intermediate
dose
(n = 613)
Low dose
with aspirin
(n = 283)
Therapeutic
dose
(n = 50)
Overall
(n = 1556)
None, n (\%) 364 ( 60) 378 ( 62) 166 ( 59) 19 ( 38) 927 ( 60)
Hypertension, n (\%) 147 ( 24) 140 ( 23) 68 ( 24) 14 ( 28) 369 ( 24)
Diabetes, n (\%) 140 ( 23) 139 ( 23) 78 ( 28) 11 ( 22) 368 ( 24)
Obesity, n (\%) 23 ( 4) 22 ( 4) 3 ( 1) 5 ( 10) 53 ( 3)
Asthma, n (\%) 19 ( 3) 16 ( 3) 6 ( 2) 4 ( 8) 45 ( 3)
Chronic lung disease, n (\%) 16 ( 3) 13 ( 2) 1 ( 0) 7 ( 14) 37 ( 2)
Chronic cardiac disease, n (\%) 11 ( 2) 15 ( 2) 1 ( 0) 2 ( 4) 29 ( 2)
Obstructive sleep apnoea, n (\%) 3 ( 0) 2 ( 0) 2 ( 1) 0 ( 0) 7 ( 0)
Iatrogenic immunosuppression, n (\%) 1 ( 0) 6 ( 1) 0 ( 0) 0 ( 0) 7 ( 0)
Chronic kidney disease, n (\%) 0 ( 0) 5 ( 1) 1 ( 0) 0 ( 0) 6 ( 0)
Malignant neoplasm, n (\%) 1 ( 0) 2 ( 0) 0 ( 0) 1 ( 2) 4 ( 0)
Moderate or severe liver disease, n (\%) 2 ( 0) 1 ( 0) 0 ( 0) 0 ( 0) 3 ( 0)
Dialysis, n (\%) 0 ( 0) 1 ( 0) 0 ( 0) 0 ( 0) 1 ( 0)
HIV infection, n (\%) 1 ( 0) 0 ( 0) 0 ( 0) 0 ( 0) 1 ( 0)
Dementia, n (\%) 0 ( 0) 0 ( 0) 0 ( 0) 0 ( 0) 0 ( 0)
Missing, n (\%) 0 ( 0) 0 ( 0) 0 ( 0) 0 ( 0) 0 (0.0)
Table 4: Baseline co-morbidities for participants randomised into then anticoagulation domain.
Save table to outputs
save_tex_table(
  generate_baseline_comorbidities_table(sdat, format = "latex"),
  "baseline/comorbidities"
)

Prognostics

Baseline prognostics are summarised by anti-coagulation intervention in the following table.

Prognostics table
sdat <- all_data %>%
    filter_acs_itt() %>%
  mutate(CAssignment = factor(CAssignment, labels = intervention_labels()$CAssignment[-1]))
generate_baseline_prognostics_table(sdat, format = "html")
Anticoagulation
Variable Low
dose
(n = 610)
Intermediate
dose
(n = 613)
Low dose
with aspirin
(n = 283)
Therapeutic
dose
(n = 50)
Overall
(n = 1556)
Was the patient on room air for any of the preceding 24 hours?
Yes, n (\%) 460 (75) 460 (75) 224 (79) 39 (78) 1183 (76)
Missing, n (\%) 8 (1) 9 (1) 8 (3) 0 (0) 25 (2)
Was the patient's GCS < 15?
Yes, n (\%) 63 (10) 65 (11) 6 (2) 2 (4) 136 (9)
Missing, n (\%) 125 (20) 135 (22) 60 (21) 0 (0) 320 (21)
Peripheral oxygen saturation (SpO2) on room air (Lowest)
Median (IQR) 95 (94, 97) 96 (94, 97) 96 (94, 97) 94 (92, 96) 96 (94, 97)
Missing, n (\%) 150 (25) 153 (25) 59 (21) 11 (22) 373 (24)
Highest respiratory rate (breaths/minute)
Median (IQR) 22 (21, 25) 22 (21, 26) 22 (20, 26) 22 (20, 24) 22 (21, 26)
Missing, n (\%) 0 (0) 1 (0) 0 (0) 0 (0) 1 (0)
Highest recorded Urea in the last 24 hours (mmol/L)
Median (IQR) 4 (3, 5) 5 (4, 6) 4 (3, 6) 4 (3, 6) 4 (3, 6)
Missing, n (\%) 30 (5) 33 (5) 16 (6) 1 (2) 80 (5)
Highest recorded CRP in the last 24 hours (mg/L)
Median (IQR) 70 (37, 190) 75 (38, 220) 77 (44, 223) 68 (33, 129) 73 (39, 200)
Missing, n (\%) 74 (12) 59 (10) 18 (6) 29 (58) 180 (12)
APTT\\textsuperscript{1}
Median (IQR) 33 (29, 36) 33 (30, 36) 32 (28, 37) 33 (28, 38) 33 (29, 36)
Missing, n (\%) 430 (70) 439 (72) 195 (69) 35 (70) 1099 (71)
INR\\textsuperscript{1}
Mean (SD) 1.19 (0.39) 1.23 (0.58) 1.32 (1.34) 1.12 (0.18) 1.23 (0.72)
Missing, n (\%) 103 (17) 105 (17) 47 (17) 7 (14) 262 (17)
Fibrinogen\\textsuperscript{1} (g/L)
Mean (SD) 5.19 (2.01) 5.20 (1.60) 4.75 (1.40) 6.49 (1.52) 5.14 (1.71)
Missing, n (\%) 564 (92) 555 (91) 243 (86) 42 (84) 1404 (90)
Prothrombin time\\textsuperscript{1} (sec)
Median (IQR) 14 (13, 17) 14 (13, 17) 15 (13, 16) 13 (12, 14) 14 (13, 16)
Missing, n (\%) 193 (32) 204 (33) 116 (41) 10 (20) 523 (34)
Taking aspirin
Yes, n (\%) 20 (3) 25 (4) 2 (1) 3 (6) 50 (3)
Missing, n (\%) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
Time from onset of symptoms to hospitalisation
Median (IQR) 5 (3, 7) 5 (3, 6) 4 (2, 6) 4 (3, 6) 4 (3, 6)
Time from hospitalisation to randomisation
Median (IQR) 1 (0, 2) 1 (0, 2) 1 (1, 2) 1 (1, 1) 1 (0, 2)
1 For APTT, INR, Fibrinogen, and Prothrombin only at least one required.
Table 5: Baseline prognostic variables for participants randomised into anticoagulation domain.
Save table to outputs
save_tex_table(
  generate_baseline_prognostics_table(sdat, format = "latex"),
  "baseline/prognostics"
)

Age

Histogram of age
p_age <- all_data %>%
  filter_acs_itt() %>%
  ggplot(., aes(AgeAtEntry)) + 
  geom_histogram(
    breaks = c(18, seq(20, 100, 5)), 
    colour = "white", 
    closed="left") +
  labs(
    x = "Age at randomisation (5-year bins, 30 to 34, 35 to 39, etc.)", 
    y = "Count") +
  scale_x_continuous(breaks = seq(20, 95, 5))
pth <- file.path("outputs", "figures", "baseline")
ggsave(file.path(pth, "age-overall.pdf"), p_age, height = 2, width = 4)
p_age

Histogram of age by anti-coagulation intervention
p <- all_data %>%
  filter_acs_itt() %>%
  ggplot(., aes(AgeAtEntry)) + 
  facet_wrap( ~ CAssignment, scales = "free_y", ncol = 2) +
  geom_histogram(
    breaks = c(18, seq(20, 100, 5)), 
    colour = "white", 
    closed="left") +
  labs(
    x = "Age at randomisation (5-year bins, 30 to 34, 35 to 39, etc.)", 
    y = "Count") +
  scale_x_continuous(breaks = seq(20, 95, 5))
p

Weight

Histogram of weight
p <- all_data %>%
  filter_acs_itt() %>%
  filter(!is.na(BAS_WeightMeasurement)) %>%
  # 2 with weight reported as 0, make NA
  mutate(BAS_Weight = if_else(BAS_Weight == 0, NA_real_, BAS_Weight)) %>%
  ggplot(., aes(BAS_Weight)) +
  facet_wrap( ~ BAS_WeightMeasurement, scales = "free_y") +
  geom_histogram()
p

Date since first symptoms

Drugs Received During Hospital Stay

Drugs during hospital stay table
sdat <- all_data %>%
    filter_acs_itt() %>%
  mutate(CAssignment = factor(CAssignment, labels = intervention_labels()$CAssignment[-1]))
generate_discharge_drugs_table(sdat, format = "html")
Anticoagulation
Drug received \makecell[c]{Low
dose\\(n = 610)}
\makecell[c]{Intermediate
dose\\(n = 613)}
\makecell[c]{Low dose
with aspirin\\(n = 283)}
\makecell[c]{Therapeutic
dose\\(n = 50)}
\makecell[c]{Overall\\(n = 1556)}
Antibacterial drugs, n (\%) 449 (74) 443 (72) 231 (82) 38 (76) 1161 (75)
Antivirals
No antiviral, n (\%) 125 (20) 120 (20) 44 (16) 39 (78) 328 (21)
Camostat, n (\%) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
Favipiravir, n (\%) 97 (16) 100 (16) 34 (12) 0 (0) 231 (15)
Doxycycline, n (\%) 76 (12) 81 (13) 22 (8) 2 (4) 181 (12)
Ivermectin, n (\%) 201 (33) 200 (33) 91 (32) 0 (0) 492 (32)
Remdesivir, n (\%) 286 (47) 289 (47) 169 (60) 10 (20) 754 (48)
Other antiviral, n (\%) 3 (0) 1 (0) 1 (0) 0 (0) 5 (0)
Immunomodulatory
No immunomodulatory, n (\%) 60 (10) 68 (11) 38 (13) 6 (12) 172 (11)
Anakinra, n (\%) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
Corticosteroids, n (\%) 396 (65) 388 (63) 183 (65) 37 (74) 1004 (65)
Sarilumab, n (\%) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
Azithromycin, n (\%) 105 (17) 108 (18) 38 (13) 5 (10) 256 (16)
Tocilizumab, n (\%) 12 (2) 11 (2) 5 (2) 2 (4) 30 (2)
Baricitinib, n (\%) 36 (6) 50 (8) 11 (4) 6 (12) 103 (7)
Ruxolitinib, n (\%) 0 (0) 0 (0) 0 (0) 0 (0) 0 (0)
Tofacitinib, n (\%) 11 (2) 13 (2) 5 (2) 0 (0) 29 (2)
Zinc, n (\%) 388 (64) 394 (64) 173 (61) 13 (26) 968 (62)
Other immunomodulatory, n (\%) 20 (3) 20 (3) 11 (4) 1 (2) 52 (3)
Table 6: Drugs received during hospital stay for participants randomised into the anticoagulation domain.
Save table to outputs
save_tex_table(
  generate_discharge_drugs_table(sdat, format = "latex"),
  "baseline/drugs"
)